/*
 * Copyright (C) 2013 Félix Marín Ramírez | felixmurcia@gmail.com
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/*
 * DOCUMENTACION: http://documentacion-emple-depart.tk
 */
package adgui.modelo;

import java.sql.SQLException;

/**
 *
 * @author Félix Marín Ramírez | felixmurcia@gmail.com
 * @version 1.0
 */
public class ConsultaBajaDep extends AbstractModel {

    private String nombre;
    private String localidad;
    private int filasAfectadas;

    /**
     * Constructor de la clase encargado de inicializar la clase de la que
     * hereda.
     *
     * @throws SQLException Lanza la excepción SQLException heredada de la clase
     * padre.
     */
    public ConsultaBajaDep() throws SQLException, ClassNotFoundException {
        super();
    }

    /**
     *
     * @return Devuelve el nombre del departamento.
     */
    public String getNombre() {
        return this.nombre;
    }

    /**
     *
     * @return Devuelve el nombre de la localidad.
     */
    public String getLocalidad() {
        return this.localidad;
    }

    /**
     *
     * @return Devuelve el número de filas afectadas en la operación DML.
     */
    public int getFilasAfectadas() {
        return this.filasAfectadas;
    }

    /**
     * Método que comprueba el si existe el departamento indicado como
     * parámetro.
     *
     * @param NUM_DEP Numero de departamento.
     * @return Devuelve true si el departamento indicado existe en la base de
     * datos.
     * @throws SQLException Lanza la excepción SQLException heredada de la clase
     * padre.
     */
    public boolean existeDepartamento(final String NUM_DEP)
            throws SQLException, ClassNotFoundException {
        super.setConsulta("SELECT dept_no FROM depart WHERE dept_no = "
                + NUM_DEP);
        super.conexion();
        super.st = super.getConexion().createStatement();
        super.rs = st.executeQuery(super.getConsulta());
        super.bol = super.rs.next();
        super.cerrarConexion();
        super.cerrarStatements();
        return super.bol;
    }

    /**
     * Método que a partir de un número de departamento añade a las variable
     * nombre y localidad el resultado de la consulta.
     *
     * @param NUM_DEP Número de departamento.
     * @throws SQLException Lanza la excepción SQLException heredada de la clase
     * padre.
     */
    public void localidadYNombreDep(final String NUM_DEP)
            throws SQLException, ClassNotFoundException {
        super.setConsulta("SELECT dnombre, loc "
                + "FROM depart"
                + " WHERE dept_no = " + NUM_DEP);
        super.conexion();
        super.st = super.getConexion().createStatement();
        super.rs = super.st.executeQuery(super.getConsulta());
        super.rs.next();

        this.nombre = super.rs.getString(1);
        this.localidad = super.rs.getString(2);
        super.cerrarConexion();
        super.cerrarStatements();
    }

    /**
     * Método utilizado para dar de baja un empleado.
     *
     * @param NUM_DEP Número de departamento.
     * @throws SQLException Si se produce un error en el borrado de datos
     * lanzará una excepción.
     */
    public void baja(final String NUM_DEP)
            throws SQLException, ClassNotFoundException {
        super.setConsulta("DELETE FROM depart WHERE dept_no = " + NUM_DEP);
        super.conexion();
        super.st = super.getConexion().createStatement();
        this.filasAfectadas = super.st.executeUpdate(super.getConsulta());
        super.cerrarConexion();
        super.cerrarStatements();
    }
}
